package com.controller;

import org.hibernate.Hibernate;

import com.DAO.UsuarioDAO;
import com.model.Usuario;
import com.util.HibernateUtil;
import com.util.Session;
import com.view.LoginView;

public class LoginController {

	private LoginView loginView;
	private GerenciadorDespesasController gerenciadorDespesas;
	
	public LoginController(){
		
		this.loginView = new LoginView(this);
	}
	
	
	public boolean valida(Object dados[]){
		
		Boolean resultado = false;
		String cpfS = (String)dados[0];
	   
		Long cpf = Long.parseLong(cpfS.trim());
		String senha = (String) dados[1];
		
		try{
    	UsuarioDAO usuarioDAO = new UsuarioDAO(HibernateUtil.openSession(), Usuario.class);
	    Usuario usuariodao = usuarioDAO.pesquisaUsuarioById(cpf);
	  
	    	if( (cpf == usuariodao.getCpf()) && (senha.equals(usuariodao.getSenha()))){
	    		Session s = Session.createInstance();
	    		s.setUsuario(usuariodao);
	    		gerenciadorDespesas.getMainWindow().removeWindow(getView());
	    		gerenciadorDespesas.init();
	    		resultado = true;
	    	}
	    	else
	    		resultado = false;
		}
		catch (Exception e) {
			resultado = false;
		}
		return resultado;
	}
	
	
	public LoginView getView(){
		return this.loginView;
	}
	

	public void LogoOff(){
		
		this.gerenciadorDespesas.login();
	}

	
	public void setGerenciadorDespesas(GerenciadorDespesasController gerenciadorDespesas){
		this.gerenciadorDespesas = gerenciadorDespesas;
	}
	
}
